#include <linux/module.h>
#include <linux/init.h>

#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/mm.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/delay.h>
#include <linux/device.h>

#include <asm/io.h>

#include "bus.h"

MODULE_LICENSE("GPL");
MODULE_AUTHOR("zl");


int zl_probe (struct device *dev)
{
    printk("[%s %s %d ]\n", __FILE__,  __FUNCTION__, __LINE__); 
    return 0;
}


int zl_remove (struct device *dev)
{
    printk("[%s %s %d ]\n", __FILE__,  __FUNCTION__, __LINE__); 
    return 0;
}

struct zl_driver zl_driver_struct = {
    .idVendor  = 0x1234,
    .idProduct = 0x5678,
    .drv = {
        .name = "zldevice",
        .probe = zl_probe,
        .remove = zl_remove,
    },
};

int test_init(void)
{
    int ret = 0;

    printk("[%s %s %d ]\n", __FILE__,  __FUNCTION__, __LINE__); 
    zl_driver_register(&zl_driver_struct);
    return ret;
}

void test_exit(void)
{
    printk("[%s %s %d ]\n", __FILE__,  __FUNCTION__, __LINE__); 
    zl_driver_unregister(&zl_driver_struct);
}

module_init(test_init);
module_exit(test_exit);

